<template>
  <div>
    <UploadExcel :on-success="success" />
  </div>
</template>

<script>
import { importEmployee } from '@/api/employees'

export default {
  methods: {
    async success({ results }) {
      const userRelations = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber'
      }
      // 存储最终的处理结果数据的
      // excel导入的时候获取到的数据
      // 存储最终的处理结果的

      const arr = results.map(item => {
        // console.log(item)
        const userInfo = {}
        for (const itemKey in item) {
          // itemKey是中文的key，通过映射表找到英文的键名，然后把英文的键添加到userInfo对象里面

          // 如果是时间的key，我们要把他进行格式化之后再去赋值
          if (['timeOfEntry', 'correctionTime'].includes(userRelations[itemKey])) {
            userInfo[userRelations[itemKey]] = new Date(this.formatDate(item[itemKey], '/'))
          } else {
            // 如果不是时间的key，直接把excel里面的内容提交给接口就👌🏻
            userInfo[userRelations[itemKey]] = item[itemKey]
          }
        }
        return userInfo
      })
      // 处理完的数据提交给接口
      await importEmployee(arr)
      this.$message.success('导入成功')
      // 跳转到上一级页面(从哪跳转来的，处理完毕之后就跳回去)
      this.$router.back()
    },
    // excel中的时间是一个数字，需要调用此方法进行处理 -> 直接复制
    formatDate(numb, format) {
      const time = new Date((numb - 1) * 24 * 3600000 + 1)
      time.setYear(time.getFullYear() - 70)
      const year = time.getFullYear() + ''
      const month = time.getMonth() + 1 + ''
      const date = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        return year + format + month + format + date
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    }

  }
}
</script>
